/**
* @project admin-go-api
* @name sysLoginInfo
* @descriptions 登录日志相关模型
* @author 寒锋
* @date 2023-12-22 11:12:57
 */

package entity

import "admin-go-api/common/util"

const (
	LoginInfoStatusNormal = 1 // 成功
	LoginInfoStatusFailed = 2 // 失败
)

type SysLoginInfo struct {
	ID            uint       `gorm:"column:id;autoIncrement;primaryKey;NOT NULL;comment:'主键'" json:"id"`
	Username      string     `gorm:"column:username;varchar(64);NOT NULL;default:'';comment:'用户账号'" json:"username"`
	IpAddress     string     `gorm:"column:ip_address;varchar(128);default:'';comment:'登录IP地址'" json:"ip_address"`         // 登录IP地址
	LoginLocation string     `gorm:"column:login_location;varchar(255);default:'';comment:'登录地点'" json:"login_location"`   // 登录地点
	Browser       string     `gorm:"column:browser;varchar(50);default:'';comment:'浏览器类型'" json:"browser"`                 // 浏览器类型
	Os            string     `gorm:"column:os;varchar(50);default:'';comment:'操作系统'" json:"os"`                            // 操作系统
	LoginStatus   int        `gorm:"column:login_status;NOT NULL;default:2;comment:'登录状态（1-成功 2-失败）'" json:"login_status"` // 登录状态（1-成功 2-失败）
	Message       string     `gorm:"column:message;varchar(255);default:'';comment:'提示消息'" json:"message"`                 // 提示消息
	LoginTime     util.HTime `gorm:"column:login_time;comment:'登录时间'"json:"login_time"`                                    // 访问时间
}

func (SysLoginInfo) TableName() string {
	return "sys_login_info"
}

// SysLoginInfoIdDto Id参数
type SysLoginInfoIdDto struct {
	Id uint `json:"id"` // ID
}

// DelSysLoginInfoDto 批量删除登录日志Id列表
type DelSysLoginInfoDto struct {
	Ids []uint `json:"ids"` // Id列表
}
